import {reqSwiperData,reqThemeCakeList,reqChoiceCakeList,reqNewCakeList,reqFestivalList} from '../../api/index'
import {reqTwoQuanData,reqBatchInsertDiscount,selectifdiscount,getfestquanapi} from '../../api/quan';
import {timeTransition} from '../../utils/common'
import { getStorage } from '../../utils/storage';
import { toast } from '../../utils/extendApi';
// index.js
Page({
    data: {
        carouselList:[],// 轮播图数据
        themecakeList:[],// 主题分类数据
        // 蛋糕系列数据
        cakeSeries: [],
        userinfo:'',
        festival:'',//选中的节日
        festivalshow:false,
        // 新品上市数据
        newCakes: [],
        // 节日限定数据
        festivalCakes: [],
        showCouponPopup: false, // 是否显示优惠券弹窗
        coupons: [
        ], // 优惠券数据
        totalCouponAmount: 0 ,// 优惠券总金额
        discount:'',
        flag:''
      },
      // 去使用
      async goto(){
        this.setData({ showCouponPopup: false });
      },
 // 立即使用优惠券
 guanbi(){
   this.setData({
    festivalshow:false
   })
 },
 async showfest(e){
    // 先判断用户是否登录
    const userinfo = this.data.userinfo;
    if (!userinfo || !userinfo.userid) {
      // 未登录状态：提示并跳转登录页
      toast({ title: '请先登录', icon: 'none' });
      // 延迟跳转，确保提示被用户看到
      setTimeout(() => {
        wx.switchTab({
          url: '/pages/owner/owner'
        });
      }, 500);
      return; // 终止后续操作
    }
  
    // 已登录状态：继续原有逻辑
    const festival = e.currentTarget.dataset.festival;
    // 查看是否有优惠券
    if(festival.discountid != null && festival.discountid != 0){
      // 根据优惠券id查询优惠券信息
      const userdiscount = {
        userid: this.data.userinfo.userid,
        discountid: festival.discountid
      };
      const res = await selectifdiscount(userdiscount);
      this.setData({
        discount: res.data.discount,
        flag: res.data.flag
      });
    } else {
      this.setData({
        discount: '',
      });
    }
    this.setData({
      festivalshow: true,
      festival
    });
  },
 flagtrue(){
  toast({ title: '你已经领取过了' });
 },
 //点击获取该优惠券
 async getfestquan(){
  const userdiscount={
    userid:this.data.userinfo.userid,
    discountid:this.data.festival.discountid
   }
  const res=await getfestquanapi(userdiscount);
  if(res.data.res>0){
    toast({ title: '领取成功' });
    this.setData({
      festivalshow:false
    })
  }
 },
async useCoupon() {

    // 立即使用优惠券（新增到userdiscount表并清空本地存储）
    try {
      const userinfo = wx.getStorageSync('userinfo');
      const userId = userinfo.userid;
      const coupons = this.data.coupons;

      if (!userId || !coupons.length) {
        wx.showToast({ title: '数据异常', icon: 'none' });
        return;
      }

      // 构造新增数据（批量新增，支持多个优惠券）
      const batchData = coupons.map(coupon => ({
        userid: userId,
        discountid: coupon.discountid
      }));

      // 调用批量新增接口
      const res = await reqBatchInsertDiscount(batchData);
      if (res.code === 200) {
        wx.showToast({ title: '优惠券领取成功', icon: 'success' });
        // 清空本地newUserDiscount，避免重复显示
        wx.removeStorageSync('newUserDiscount');
        this.setData({ showCouponPopup: false });
      } else {
        wx.showToast({ title: '领取失败', icon: 'none' });
      }
    } catch (err) {
      console.error("优惠券使用失败:", err);
      wx.showToast({ title: '系统错误', icon: 'none' });
    }
  },

  // 初始化优惠券数据（从本地newUserDiscount获取）
  initCouponData() {
    // 从本地存储获取newUserDiscount
    const newUserDiscount = wx.getStorageSync('newUserDiscount');
    if (newUserDiscount) {
      // 支持单个或多个优惠券（如果是单个，转为数组）
      const coupons = Array.isArray(newUserDiscount) ? newUserDiscount : [newUserDiscount];
      // 计算总金额
      const totalAmount = coupons.reduce((sum, item) => sum + item.money, 0);
      // 更新数据并显示弹窗
      this.setData({
        coupons,
        totalCouponAmount: totalAmount,
        showCouponPopup: true
      });
    } else {
      // 本地无数据，不显示弹窗
      this.setData({ showCouponPopup: false });
    }
  },
  

      // 关闭优惠券弹窗
  closeCouponPopup() {
    this.setData({ showCouponPopup: false });
  },
      // 请求首页轮播图的数据方法
      async getIndexData() {
        try{
            const res = await reqSwiperData();
            if(res.code  === 200){
                console.log("这是轮播图的数据：")
                console.log(res);
                this.setData({
                    carouselList: res.data.carouselList 
                });
            }
        }catch(err){
            console.error("获取轮播图失败:"+err);
            } 
      },
      // 获取主题数据
      async getThemeCake(){
      try{
        const res=await reqThemeCakeList();
        if(res.code  ===200){
            console.log("这是主题蛋糕的数据：")
            console.log(res);
            this.setData({
                themecakeList:res.data.themecakeList
            });
        }
    }catch(err){
        console.error("获取主题分类数据失败:"+err);
        } 
      },
      // 获取新品上市的数据
      async getNewCakeList(){
        try{
          const res=await reqNewCakeList();
          if(res.code  ===200){
              console.log("这是新品上市的数据：")
              console.log(res);
              this.setData({
                newCakes:res.data.newCakeList
              });
          }
      }catch(err){
          console.error("获取新品上市的数据失败:"+err);
          } 
        },
        // 获取精选系列的数据
      async getChoiceCake(){
        try{
          const res=await reqChoiceCakeList();
          if(res.code  ===200){
              console.log("这是精选系列蛋糕的数据：")
              console.log(res);
              this.setData({
                cakeSeries:res.data.choiceCakeList
              });
          }
      }catch(err){
          console.error("获取精选系列数据失败:"+err);
          } 
        },
      // 获取节日信息
  async getFestivalList() {
    try {
      const res = await reqFestivalList();
      if (res.code === 200) {
        console.log("这是节日的数据：")
        console.log(res);
        // 对节日数据中的日期进行格式化处理
        const formattedFestivals = res.data.festivals.map(festival => {
          // 假设 festivalstart 和 festivalend 是 ISO 格式的日期字符串
          const startDate = new Date(festival.festivalstart);
          const endDate = new Date(festival.festivalend);

          // 格式化日期为 YYYY-MM-DD（本地时区）
          const formattedStart = startDate.toLocaleDateString('zh-CN', {
            year: 'numeric',
            month: '2-digit',
            day: '2-digit'
          }).replace(/\//g, '-');
          const formattedEnd = endDate.toLocaleDateString('zh-CN', {
            year: 'numeric',
            month: '2-digit',
            day: '2-digit'
          }).replace(/\//g, '-');
          return {
            ...festival,
            festivalstart: formattedStart,
            festivalend: formattedEnd
          };
        });
        this.setData({
          festivalCakes: formattedFestivals
        });
      }
    } catch (err) {
      console.error("获取节日数据失败:" + err);
    }
  },
      onLoad(){
          this.getIndexData();
          this.getThemeCake();
          this.getNewCakeList();
          this.getChoiceCake();
          this.getFestivalList();
          this.initCouponData(); // 初始化优惠券弹窗
      },
      onShow(){
        this.setData({
          userinfo: getStorage("userinfo"),
          festivalshow:false
        })
      },
       /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {
    
    },
})
